home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-02-14 | 74.0 KB | 1,537 lines |
- DOCUMENTATION FOR EMANDEL, EJULIA, and EMDISPLAY
-
- These are powerful programs with many features. Please read this documentation
- and then print out a copy of the file CMDS.TXT for reference before attempting
- to use them. The file SAMPLE.DOC is intended to guide you step-by-step through
- your first use.
-
- In what follows, UNLESS OTHERWISE NOTED everything said about Emandel applies
- also to Ejulia.
-
- COPYRIGHT NOTICE
-
- These program (Emandel, Ejulia, and Emdisplay) are copyrighted by Dan
- Schechter, Route 1 Box 19, Amenia, North Dakota 58004. You may not
- sell them.
-
- However, you are encouraged to make copies of them and pass them on to
- friends. Please keep the set intact. The programs Emandel, Ejulia, and
- Emdisplay, along with this documentation file MANDEL.DOC, the file SAMPLE.DOC,
- the command summary CMDS.TXT, and the batch file WHOLE.BAT should all be
- passed along together.
-
- SHAREWARE NOTICE
-
- Shareware means that you can legally obtain a copy of a program at little or
- no cost and try it for as long as you like before deciding whether it is worth
- paying for.
-
- If you find these programs enjoyable, please send $20 to:
-
- Dan Schechter
- Route 1 Box 19
- Amenia, North Dakota 58004
- U.S.A.
-
- --------------------------------------------------------------------
-
- HARDWARE REQUIREMENTS
-
- COMPUTER: IBM PC or compatible. Running MS-DOS 2.0 or later.
-
- MEMORY: Emandel will use all available memory. 640K is required for full-size
- frames. 512K should do quite well. 384K will allow you to use all the
- program's features, but only on reduced-size frames.
-
- GRAPHICS: Hercules monochrome graphics adapter (or compatible) is required.
-
- DISK DRIVE: Hard disk. Emandel can produce data files as large as 414K.
- Therefore it WILL NOT RUN on a system limited to 360K floppy drives. It will
- run on a 1.2 Mb drive, or a 720K 3 1/2 inch drive but the reading and writing
- of disk files will be SO EXTREMELY SLOW that I absolutely DO NOT RECOMMEND
- running Emandel without a hard disk.
-
- If you have a numeric coprocessor chip Emandel will use it. Otherwise Emandel
- will use software math, which is slower.
- --------------------------------------------------------------------
-
- I have never tested Emandel with any memory-resident programs. It probably
- will not work with them because of the graphics. And besides, they take up
- valuable memory.
-
- --------------------------------------------------------------------
-
- BACKGROUND: COMPLEX NUMBERS AND THE MANDELBROT SET
-
- An imaginary number is an abstract mathematical concept: a number that, when
- multiplied by itself, gives a negative value. Real numbers, by contrast,
- always give positive values when squared. An imaginary number is denoted in
- mathematics by the lower case letter "i". Thus 5i is the imaginary number that
- when multiplied by itself gives -25. Imaginary numbers exist only in the minds
- of mathematicians.
-
- A complex number is a number that has both a real component and an imaginary
- component. It is denoted by the addition or subtraction of a real number and
- an imaginary number. For example 17+5i is a complex number. Both the real and
- imaginary components of a complex number may have fractional parts.
-
- The complex number plane is a flat surface on which every point corresponds to
- a complex number. The "origin" is the point corresponding to 0+0i. A straight
- line through the origin represents the real axis. Another straight line
- through the origin and perpendicular to the first represents the imaginary
- axis. By convention, positive real numbers are to the right of the origin,
- negative real numbers are to the left of the origin, positive imaginary
- numbers are above the origin, and negative imaginary numbers are below the
- origin.
-
- To find a complex number on the plane, start at the origin and go right or
- left along the real axis the amount of the real component (depending on
- whether the real component is positive or negative). Then go up or down,
- parallel to the imaginary axis, by the amount of the imaginary component
- (depending on whether the imaginary component is positive or negative).
-
- To find the magnitude of a complex number, measure the distance from it to the
- origin.
-
- To add two complex numbers, add their real components to find the real
- component of the sum, and add the imaginary components to find the imaginary
- component of the sum.
-
- To multiply two complex numbers, use the following formula:
- (A+Bi)*(C+Di) = (A*C)-(B*D) + ((B*C)+(A*D))i
- This is the binomial expansion.
-
- Now consider a mathematical procedure, as follows:
-
- Take a complex number. Let's call it P for convenience. Multiply P by itself,
- and then add P to the result. Multiply that result by itself and then add P to
- the new result. Again, multiply the new result by itself and then add P. Do
- this over and over again.
-
- Each time you do one multiplication and one addition you have done one
- iteration. (Iteration means doing the same thing over and over again.) Keep
- track of the iteration count.
-
- A remarkable thing happens as you continue iterating. Either the magnitude of
- your complex number grows ever larger and larger, or else it remains ALWAYS
- BELOW 2. Either it "approaches infinity" (as mathematicians express it) or
- else it never exceeds 2.
-
- The fact just noted was discovered by Benoit Mandelbrot. Therefore the
- Mandelbrot set is the collection of those complex numbers that remain below
- two under the above iterative process.
-
- In order to find all these numbers we must perform the above iterative process
- on every point P within a given area of the complex number plane. (In fact, we
- are forced to compromise by selecting a finite number of points, spaced at
- even intervals, over some part of the plane. Emandel uses at most 338,688
- points.) And we must keep track of the iteration count for each point.
-
- What makes the Mandelbrot set so fascinating is that being a "fractal" it
- remains infinitely complex regardless of how much you magnify it. It can
- provide you with an unlimited variety of amazing patterns.
-
- For further reading, see Scientific American magazine, August 1985, the
- Computer Recreations column by A.K. Dewdney. And for yet further reading, see
- THE FRACTAL GEOMETRY OF NATURE by Benoit Mandelbrot.
-
- The Julia sets (plural, since there are an infinite number of them) are
- related to the Mandelbrot set in that any point in or near the Mandelbrot set
- can serve as a "Julia point" for a distinct Julia set. Select a point and call
- it J. Then for every point P on the plane do the following:
-
- Square P and add J. Square the result and add J. Square the new result and add
- J again. And so on. As before, either the magnitude will approach infinity, or
- it will remain always below 2. Keep track of the iteration count of each
- point. Each Julia set will somewhat resemble the place in the Mandelbrot set
- from which you took point J.
-
- -------------------------------------------
-
- EMANDEL
-
- Now we return to these programs: First we must select an arbitrary cut-off
- limit of iteration. 255 is a convenient number because it is the largest
- number that can be represented in one "byte" of computer memory. It also
- happens to work well when you begin exploring the Mandelbrot set. (As you go
- deeper into the set you will sometimes want to use higher cut-off limits.) In
- Emandel, the iteration cut-off is called "maxit", which is short for maximum
- iteration.
-
- When you run Emandel, it takes a portion of the complex number plane, and
- performs the iterative process I described above for each pixel (picture
- element) on the screen. If the magnitude of the point goes above 2, the
- program remembers how many iterations were performed for that pixel. If the
- magnitude is still below 2 after the number of iterations has reached maxit,
- the program goes on to the next pixel.
-
- Thus, when it is finished, every pixel has been assigned a value, from 1 to
- maxit. Pixels with a value of maxit are considered to be within the Mandelbrot
- set. Pixels with lower values are considered to be outside the set. During the
- calculation phase of the program, pixels inside the set are illuminated, and
- pixels outside the set are dark.
-
- Calculation can take anywhere from a few minutes to many days, depending on
- how large a portion of the screen you use, what part of the complex number
- plane you are in, the value you have assigned to maxit, and the speed of your
- computer.
-
- Now the fun begins. Every pixel has a value, and you and the computer must
- decide which pixels to illuminate. If you merely illuminate pixels whose
- values equal maxit, the pictures will be rather dull and flat looking. But
- Emandel allows you to specify many different ranges of values for
- illumination. For example, you might illuminate all pixels with odd-numbered
- values. Or you might illuminate pixels with values from 10 to 17 and from 25
- to 100 and from 124 to 125. In Emandel, a range of iteration values is called
- a cluster.
-
- Each time you specify a cluster of values to be illuminated, Emandel re-draws
- the screen to show you the new pattern. Marvelous figures seem to appear out
- of nothing. You can change the values for a cluster, clear a cluster, or move
- on to another cluster. Emandel is intelligent enough to allow you to specify a
- group of clusters to be filled in in a regular way. (More on this later, in
- the section on Auto-draw.)
-
- When you have a picture you like, you can save it to a disk file. The program
- Emdisplay allows you to view it as well as print it out on an Epson-compatible
- dot-matrix printer.
-
- Because the calculation phase takes so long, Emandel allows you to break off
- calculation, store the data in a disk file, and exit from the program. Then
- you can resume later where you left off. I run Emandel at night while I sleep.
-
- Also, because calculation takes so long, "screen burn" would be a problem.
- Therefore Emandel allows you to blank the screen. And because the program is
- likely to run unattended for long periods, and you do not want the cat to
- inadvertently bollix it up when he walks across the keyboard, Emandel will not
- respond to most keyboard commands when the screen is blanked.
-
- --------------------------------------------------------------------
-
- Emandel is run from the MS-DOS command line. This means you give it all its
- starting parameters when you tell DOS to run the program, rather than
- answering menu questions after the program starts. The following line will
- start the program and produce an over-view of the entire Mandelbrot set:
-
- EMANDEL -2.5 1.25 -1.25 /M100 /NWHOLE
-
- This line is contained in the batch file WHOLE.BAT. Thus you could just type:
-
- WHOLE
-
- to run the program for the first time.
-
- After that you never need to worry about the command line arguments because
- Emandel allows you to mark a portion of one picture to be enlarged for the
- next, and it will create a batch file to run itself.
-
- --------------------------------------------------------------------
- Emandel has three operation modes:
-
- Main mode.
- Threshview mode.
- Grid Mode.
-
- Main mode is entered when you start the program. Main mode performs the
- arithmetic calculations and allows you to query the program concerning its
- parameters.
-
- Threshview mode is where you create and save patterns out of the program's raw
- data. You enter threshview mode from main mode. You can create partial
- patterns from a partial base of data, before the calculation is done, in order
- to get some idea of what you are getting. You can make as many pictures as you
- like from one frame. Each will have a different name, selected by the program.
- Your only limit is your available disk space. Exiting from Threshview mode
- will return you to main mode.
-
- Grid mode is where you mark a portion of the picture to be enlarged by the
- next run of the program. You position a box around the area you want enlarged,
- and Emandel produces the batch file to invoke itself. You can make as many
- batch files as you like in this way. Each will have a different name, selected
- by the program. You can enter grid mode directly from main mode or from
- threshview. Thus you can use threshview to make a pattern, and then use Grid
- to select a portion of that pattern for enlargement. Grid mode also gives you
- the coordinates and the value of any pixel on the screen. Exiting from Grid
- mode returns you to the mode you entered Grid mode from.
-
- --------------------------------------------------------------------
-
- HOW TO EXIT FROM THE PROGRAM
-
- If the screen is blanked, press control-S.
-
- Press ESC several times. This will take you, one level at a time, from
- whatever part of the program you may be in, back to Main mode.
-
- Now press control-C to exit from the program.
-
- If you have not saved the data, the program will ask you "file not saved.
- Exit?". Press N to remain in the program. Press Y to exit from the program.
-
- THIS IS THE ONLY WAY TO EXIT FROM THE PROGRAM OTHER THAN A COLD BOOT. SO KEEP
- THESE INSTRUCTIONS HANDY UNTIL YOU ARE FAMILIAR WITH THEM.
-
- --------------------------------------------------------------------
-
- GENERAL OPERATING INSTRUCTIONS
-
- STARTING EMANDEL FROM THE COMMAND LINE
-
- Items enclosed in angle brackets < > are named parameters. Enter them without
- the brackets. Items enclosed in square brackets are optional. Enter them
- without the brackets, or leave them out entirely.
-
- EMANDEL <lr> <ti> <bi> [/M<maxit>] [/A<asp>] [/S<size>] [/X] [/B<beep>]
- [/N<name>]
-
- EJULIA <lr> <ti> <bi> <rj> <ij> [/M<maxit>] [/A<asp>] [/S<size>] [\X]
- [/B<beep>] [/N<name>]
-
- EMANDEL <filename>
-
- EJULIA <filename>
-
- In the first and second examples above, Emandel and Ejulia are started for a
- new frame. In the third and fourth examples above, Emandel and Ejulia are
- started with an already-existing data file, which may be from an interrupted
- session, or may be a completed data file that you wish to use for Threshview
- or Grid.
-
- REQUIRED PARAMETERS
-
- <lr> is a floating point number, the real coordinate of the left edge of the
- frame.
-
- <ti> is a floating point number, the imaginary coordinate of the top of the
- frame.
-
- <bi> is a floating point number, the imaginary coordinate of the bottom of the
- frame.
-
- <rj> (EJULIA only) is a floating point number, the real coordinate of the
- Julia point.
-
- <ij> (EJULIA only) is a floating point number, the imaginary coordinate of the
- julia point.
-
- Floating point numbers may be decimal fractions such as 1.2345 or 0.1234. They
- may be positive or negative. Or they be entered in "scientific" notation. Such
- as -.9876e-3 which means negative .9876 divided by ten to the 3rd power. Note
- that there may not be any spaces within the number. For practical purposes, ti
- and bi should be between 1.5 and -1.5, ti should be greater than bi, lr should
- be between -2.5 and 1.0, and the Julia point should be near the edge of the
- Mandelbrot set. Many starting parameters will result in empty frames, which is
- why it is best to begin with the whole set and use Grid mode to enlarge
- successively smaller areas.
-
- <filename> (In the third and fourth examples above) is the name of a data file
- with the file type extension PIK. If you give a file name without a file type
- extension, or with a different file type extension, the file type extension
- PIK will be used regardless.
-
- COMMAND LINE OPTIONS
-
- <maxit> (see below) is an integer from 1 to 1023. For practical purposes you
- will probably never set maxit lower than about 50. Default is 255.
-
- <asp> (see below) is a positive floating point number. Default is .75 and
- typical values might range from 0.1 to 10.0
-
- <size> (see below) is a positive decimal fraction, less than or equal to 1.
- Default is 1.
-
- <name> (see below) is the name you wish the data file to have.
-
- ASP. Aspect ratio. The vertical-to-horizontal ratio of the screen is .75. This
- is the default aspect ratio. Sometimes you may want to make a tall narrow
- picture, or a wide squat picture. You can do this by changing the aspect
- ratio. On the command line put a forward slash, followed by the letter A
- followed by a number. (No spaces.) For example /A1 will produce a square
- picture.
-
- SIZE. Size is the fraction of total screen area actually used. 1 is the full
- screen. .5 is half the screen area. You will sometimes want to use a small
- part of the screen to make a frame in a hurry. Or if your computer has less
- than 640 K of memory you may have to use less than the full screen because of
- the memory-intensive nature of the program. /S.1 will get you one-tenth the
- screen area.
-
- INTERACTION BETWEEN SIZE AND ASPECT. Aspect ratio takes precedence. If you
- select an aspect ratio of 1 (for a square picture) then it is impossible for
- size to be 1. The screen is not square, so a square picture cannot fill it. If
- you select 1 for the aspect ratio and 1 for the size, the program will adjust
- size downward as necessary. On the other hand, if you select aspect ratio = 1
- and size = .5 your picture will be a square and will have an area equal to
- half the total screen area, because a square of that size can fit into the
- screen.
-
- If you select a size and aspect ratio that requires more memory than your
- system has, the program will cut as much as necessary from the right-hand side
- of the frame. It will then inform you of the new size and aspect and ask if
- you want to proceed or abort. You may answer P to go ahead with the program's
- new values, or you may answer A and then start over with different values. You
- will not be able to get a larger picture area in this way, because that would
- require more computer memory. But you may be able to get a more satisfactory
- picture shape by specifying a smaller value of size.
-
- MAXIT. You can specify the maximum iteration cut-off value. On the command
- line, put a forward slash, followed by the letter M, followed by a number from
- 1 to 1023. Values much below 100 will not produce satisfactory results in most
- cases. /M300 will get you maxit = 300.
-
- A NOTE ON MAXIT AND MEMORY USAGE. Because 255 is the largest value that can
- fit in an 8-bit "byte", Emandel has to operate slightly differently when maxit
- is set higher than 255. It will require almost 25% more memory, and will cause
- a *slight* slow-down in program operation. Thus, if you have limited memory
- (especially on 384K systems) you will not be able to make as large a picture
- if maxit is greater than 255 as you will be able to make if maxit is less than
- or equal to 255.
-
- FILENAME. Emandel will let you choose a file name for the data file, or it
- will pick one itself. The file type extension is always PIK. You cannot change
- that. If it picks a name itself, it will consist of the letters "EM" (or "EJ"
- for Ejulia) followed by a number, and then the extension "PIK". The number
- will be selected so that it does not conflict with any file already on the
- current logged directory. If you wish to specify the name yourself, on the
- command line put a forward slash, followed by the letter N, followed by the
- name (no spaces). Thus /NMYPIC would result in the file name MYPIC.PIK. If you
- specify the file name in this way, Emandel will overwrite any existing file of
- the same name.
-
- All of these options can be selected and specified from within the Grid mode
- of Emandel, as it makes a batch file automatically. Aspect is determined by
- the shape of the box you create, and the others you can tell the program in
- response to the questions it will ask you. Generally, pressing ENTER (or
- RETURN) at a prompt causes the program to leave that parameter unchanged. (In
- the case of file name, it tells the program to pick a non-conflicting file
- name at run time, and in the case of size it sets size equal to 1.)
-
- /X is the auto-exit switch. (This also may be toggled from within the
- program.) Auto-exit tells the program to save data and exit immediately upon
- completion of calculation. If Emandel is entered with auto-exit enabled, the
- screen will automatically be blanked, just as though you had used the ^S
- command. This makes it possible to run Emandel from within your own batch
- file. Auto-exit will blank the screen on entry (to avoid screen burn) and will
- exit on completion so that your batch file regains control. Note that if there
- is insufficient memory on entry to the program and auto-exit is enabled, the
- program will exit immediately. This is to prevent a hang-up on unattended
- operation. The frame will not be automatically sized down without your
- approval.
-
- <beep> is the beeper alarm setting, which may be from 1 to 9. You can also set
- or change this from within the program. This is the number of times the
- console will beep on completion of calculation. Default is zero.
- --------------------------------------------------------------------
-
- NOW YOU KNOW THE REASON FOR EMANDEL, AND HOW TO START IT, AND HOW TO EXIT FROM
- IT. NOW FOR A DISCUSSION OF ITS RUN-TIME FEATURES:
-
- --------------------------------------------------------------------
- Any time a letter is preceded by a carat (^) it means that you hold down the
- CONTROL key while you tap the letter.
-
- <CR> stands for "carriage return." It means the ENTER or RETURN key.
-
- ESC stands for the ESCAPE key.
-
- <BS> stands for the BACKSPACE key. Note that this is not the same as the left
- arrow key.
-
- <Home> 7 on the number pad.
- <PgUp> 9 on the number pad.
- <End> 1 on the number pad.
- <PgDn> 3 on the number pad.
-
- <UA> 8 on the number pad.
- <LA> 4 on the number pad.
- <DA> 2 on the number pad.
- <RA> 6 on the number pad.
-
- EMANDEL DOES NOT REALLY USE THE ARROW KEYS: Rather, it uses the number pad
- keys which (on standard IBM keyboards) have arrows on them. Emandel sets the
- NumLock automatically upon entry to Grid mode.
-
- This means that IF YOU HAVE AN "ENHANCED" KEYBOARD with separate arrow keys,
- YOU MUST USE THE NUMBER KEYS, NOT THE SEPARATE ARROW KEYS. The reason for this
- is there are only 4 arrow keys, but Emandel (in Grid mode) needs 9 directional
- keys: 8 directions plus a stop key (5).
- --------------------------------------------------------------------
-
- MAIN COMMANDS
-
- ^S Blank or restore the screen. To prevent screen-burn, and to reduce the
- likelihood of an unattended run being inadvertently interrupted, you can blank
- the screen with this command. No other command will affect the program while
- the screen is blanked. Pressing ^S a second time will restore the screen and
- enable all the other commands.
-
- ^Q Quit calculation. As a safety feature you must quit calculation before you
- can exit the program. This command has no effect if the program has finished
- calculating.
-
- ^U Resume calculating after the above command. This also has no effect if
- calculation has finished.
-
- ^E If this command IMMEDIATELY precedes ^C it will force the program to
- return a non-zero exit code to the system. The result of this is that the
- conditional command "IF ERRORLEVEL" (used in batch files) thinks the program
- has exited on an error. This command therefore can be used to prevent
- Emandel's self-produced batch file from erasing itself.
-
- ^C Exit from the program. (You must have previously used ^Q to quit
- calculation mode if calculation has not yet finished.)
-
- ^L Log new disk drive or subdirectory. You will be prompted to enter a new
- path. Use normal MS-DOS drive and path specifications. Entering an invalid
- subdirectory will have no effect. But BEWARE: logging a drive that does not
- have a disk in it can cause the program and the operating system to crash,
- because MS-DOS will dump the program without restoring the graphics card to
- text mode.
-
- ^W Write the program data to a disk file. This may be the data from a
- completed run, or it may be the data from a run that you wish to interrupt and
- save for later resumption.
-
- <space bar> The space bar will erase whatever is on the prompt line.
-
- ^G Enter Grid mode. Use Grid mode if you want to select a portion of the
- picture for enlargement in a later run. You can also use grid mode to see the
- value and coordinates of any pixel.
-
- ^T Enter Threshview mode. Use Threshview mode to create pictures after
- Emandel has calculated the pixel values. You may run Threshview on an
- incomplete frame to see what has developed so far.
-
- ^B Set or change the beeper-alarm. This may be set to any value from zero to
- 9. The computer will beep this many times when calculation has completed. If
- set to zero, it is disabled.
-
- ^R This will produce a batch file to run Emandel with EXACTLY the same
- parameters as in the present run.
-
- ^O (letter oh, not zero) While Grid mode allows you to delineate a small
- portion of the screen for the next run of Emandel, you may sometimes want to
- produce an overview of the present screen. That is, you want to reduce the
- size of the present picture, to see what surrounds it, rather than enlarge a
- small portion. The ^O command produces a batch file for an overview of the
- area surrounding the present frame. You will be asked for an expansion factor,
- which must be a whole number equal to or greater than 1. Using 1 is the same
- as the command ^R above, except that with ^O you will be able to enter a new
- file name, size, and maxit, whereas with ^R the present file name and all
- settings are used again.
-
- ^X Toggle auto-exit mode. When auto-exit is ON, Emandel will save the data
- file and exit as soon as calculation is completed. Thus you can run Emandel
- unattended as part of a larger batch file.
-
- ? The question mark is for help and to query the program. It must be followed
- by another keystroke, as follows:
-
- ?C Gives the coordinates of the present frame. Lr is the real component of
- the left edge of the frame. Ti is the imaginary component of the top of the
- frame. Bi is the imaginary component of the bottom of the frame. Rr is the
- real component of the right edge of the frame.
-
- ?M Gives the value of maxit, which is the maximum iteration cut-off value.
-
- ?H Gives the number of vertical scan lines computed so far.
-
- ?I Gives the amount of the numerical increment from one pixel to the next.
- This value gets smaller with increasing magnification. When this figure gets
- down around 0.000000000000001 (1.0e-15) you are approaching the limits of the
- ability of Emandel to perform meaningful calculations. This is because Emandel
- uses 64-bit arithmetic (about 15 decimal places). Consider these two numbers:
- 1.555555555555555 and 1.555555555555556. With 15-digit precision, it is
- impossible to distinguish between them because subtracting them gives a value
- of zero.
-
- ?S This will tell you some figures relating to the size and aspect ratio of
- the present frame: yl (y-limit) is the number of pixels vertically. xl (x-
- limit) is the number of pixels horizontally. (h and w, standing for height and
- width are the previous figures increased to the nearest 4-line or byte
- boundaries, and relate to the amount of memory the frame requires.) Size is
- the fraction of total screen area being used by the present run. 1 is maximum.
- On computers with less than 640K of memory it may be necessary to set size
- less than 1 because of memory limitations. asp is the aspect ratio. .75 is the
- aspect ratio of the full screen. Smaller values of asp indicate a picture that
- is wide and squat. Larger values of asp indicate a picture that is tall and
- narrow. (Emandel will adjust size as required, whether because of memory
- restriction, or because of conflict with asp.)
-
- Note that while the HGA has 348 horizontal scan lines, Emandel uses 504 scan
- lines in order to produce high-quality images for the Epson printer. On the
- screen, every third scan line is removed in order to fit the image into the
- available space. Because of the dot ratio of the HGA and the dot ratio of the
- printer, pictures remain the same shape when printed as they appear on the
- screen. But the printed images have slightly better resolution.
-
- ?G Gives the magnification factor of the present frame. This is figured with
- reference to a frame where Ti = 1.5 and Bi = -1.5.
-
- ?J Gives the coordinates of the "Julia point." This is the point used for
- calculating Julia sets. This command functions only in Ejulia, and has no
- effect in Emandel.
-
- ?P Gives the present disk drive and subdirectory path.
-
- ?% This tells you the approximate percentage of the frame which has been
- completed so far. The figure is truncated to the next lower integer. Thus if
- 37.9% of the frame has been completed, this command will show 37%.
-
- ?T This will show you three time figures. The first is how much time the
- program has spent in calculation phase during the present session. The second
- is how much time has been spent in calculation phase altogether on the present
- frame. (The two figures are different if you have used more than one program
- session on the present frame.) Time spent in Threshview mode, in Grid mode, or
- reading the help screens is not counted. The third figure is a VERY ROUGH
- approximation of the time it will take to complete the frame. If less then 10%
- of the frame has been completed, or if the average time per vertical scan line
- is less than 3 seconds, Emandel will not attempt to extrapolate a completion
- time, and will show an ellipsis [...] instead. The estimated completion time
- will be very inaccurate if the frame has a lot of high-value pixels on the
- left and a lot of low-value pixels on the right, or the other way around. It
- will be reasonably close if the frame has a relatively uniform mix of pixel-
- values across its width. This figure is only intended as a crude
- approximation.
-
- ?N This will tell you the name of the present file.
-
- ?B This tells you the value assigned to the beeper-alarm.
-
- ?X This tells you the status of the auto-exit feature.
-
- ?? This shows you the help screens. There are 5 help screens, covering
- various parts of the program. The help screens are NOT intended as a complete
- manual. They only contain a brief summary of the commands.
-
- --------------------------------------------------------------------
-
- COMMANDS AVAILABLE IN THRESHVIEW MODE
-
- ESC Exit from Threshview mode.
-
- <BS> Pressing the BACKSPACE key while the screen is being re-drawn will
- interrupt the re-draw so that you may fill more clusters without waiting for
- the complete re-draw.
-
- V <CR> This will show you the values assigned to each of the clusters.
- Because there are hundreds of clusters, and the prompt line is only 90
- characters wide, this command will show you one line at a time and wait for
- you to press a key. Pressing any key will show you the next line. Pressing ESC
- will by-pass the rest of the display and take you directly back to the
- "Cluster?" prompt. Display concludes if all remaining clusters are clear. So
- using the low-end clusters first will save time.
-
- L <CR> Log new drive or subdirectory. Same as ^L in the main commands.
-
- G <CR> Enter Grid mode. Same as ^G in the main commands.
-
- W <CR> Write a disk file of the picture presently on the screen. This is NOT
- the same as ^W in the main commands. ^W in main writes a file of the entire
- base of data for the present frame. That can be as large as 414K, depending on
- the parameters. This present command only writes a file of the image you see.
- This is never larger than 43K, and may be much smaller, depending on the value
- of "size." It is these image files that are used by Emdisplay to produce
- pictures on a dot-matrix printer.
-
- A <CR> Enter Auto-draw mode. Use this command when you want to assign a
- regular series of values to a sequence of clusters.
-
- R <CR> This will re-draw the screen. Use it when you have used <BS> to
- interrupt a re-draw, and then changed your mind and want to complete the re-
- draw.
-
- ? <CR> This will show you the help screens. It is the same as ?? in main.
-
- After you have selected a cluster, and Threshview asks you for the new top and
- bottom values you may enter, instead of a number:
-
- M This stands for the current value of maxit.
-
- < This stands for one less than the current value of maxit.
-
- = At the "Bottom" prompt this stands for top. At the "Top" prompt this stands
- for bottom, setting the one equal to the other.
-
- C This clears the present cluster.
- --------------------------------------------------------------------
-
- AUTO-DRAW COMMANDS
-
- C (At the "Start?" prompt.) Clear all the clusters in the specified range.
-
- <CR> At the "First cluster?" prompt, <CR> means cluster 0, the lowest
- cluster. At the "Last cluster" prompt, <CR> means the highest cluster, which
- is cluster 300 on the present version of Emandel. At the "Start value",
- "size", or "gap" prompt, <CR> means 1. At the "Stop?" prompt, <CR> will set
- stop = maxit-1.
-
- ESC Abort auto-draw (If you realize you just entered a wrong value and you
- want to retract it.)
-
- --------------------------------------------------------------------
-
- COMMANDS AVAILABLE IN GRID MODE
-
- ESC Exit from Grid mode.
-
- <space bar> Erase prompt line.
-
- + This increments the step size for cross-hair movement by one.
-
- * The asterisk increments the step size by ten.
-
- - (Minus sign) This decrements the step size by one.
-
- <BS> This sets the step size back to one.
-
- The above 4 step size commands also affect the step size of the box commands
- described later.
-
- <Del> Pressing the Del key toggles cross-hair motion back and forth between
- "glide" and "step" In "glide" mode, once you have pressed a direction key, the
- cross hairs will continue to move in the same direction until you press
- another direction key, or press 5 to stop movement. In "step" mode, you must
- continue to press a key if you wish movement to continue.
-
- 5 This stops the cross hairs. (And has no effect in step mode.)
-
- <Home> Moves the cross-hairs upward and to the left.
-
- <UA> Moves the cross-hairs upward.
-
- <PgUp> Moves the cross-hairs upward and to the right.
-
- <LA> Moves the cross-hairs to the left.
-
- <RA> Moves the cross-hairs to the right.
-
- <End> Moves the cross-hairs downward and to the left.
-
- <DA> Moves the cross-hairs downward.
-
- <PgDn> Moves the cross-hairs downward and to the right.
-
- All nine motion commands require that the Num-Lock be engaged. Emandel does
- this for you when you enter Grid mode, and disengages it when you leave Grid
- mode. Thus if your keyboard has a NumLock light you will see it go on and off.
- Remember that if you turn it off you will defeat the cross-hair motion
- commands. If you do this, simply turn it back on to restore operation.
-
- NOTE: If you have a keyboard with separate arrow and number pad keys, you must
- use the number-pad keys for cursor movement, rather than the arrow keys.
-
- ^B This opens a box or makes it bigger by one step
-
- ^S This makes the box smaller by one step.
-
- If you limit yourself to the two above box commands you will be certain that
- the aspect ratio of the box will be the same as the aspect ratio of the full
- screen. You should do this if you wish the largest possible pictures. The
- following commands change the shape of the box, and you may find the resulting
- picture does not entirely fill the screen. Aspect ratio takes precedence over
- size. Thus an aspect ratio of 1 (a square picture) cannot fill more than about
- 3/4 of the screen.
-
- ^D This moves the floor of the box down by one step.
-
- ^U This moves the floor of the box upward by one step.
-
- ^L This moves the right-hand side of the box left by one step.
-
- ^R This moves the right-hand side of the box right by one step.
-
- 0 (zero, not the letter oh) This closes the box.
-
- The following two commands cause Grid to produce a batch file. You will be
- asked to enter a file name for the new file. This will be the name for the
- next data file, not the name of the batch file. Pressing <CR> will cause
- Emandel to select a data file name at run-time. Then you will be asked to
- enter the value for maxit. Pressing <CR> will cause the same value of maxit to
- be used as is in effect in the present run. Then you will be asked to enter
- size. Size is a decimal number less than or equal to 1. 1 is full-size.
- Pressing <CR> will set size = 1. Size will be reduced at run-time if it
- conflicts with the aspect ratio or the available memory of your computer. You
- will not be asked for the aspect ratio. This is determined by the shape of the
- box you have made. Pressing ESC at any prompt will abort the batch file
- routine.
-
- # The cross-hatch causes a batch file to be written. Emandel will write a
- batch file that runs Emandel. Ejulia will write a batch file that runs Ejulia.
-
- ^J This command is for Emandel. It will have no effect in Ejulia. It will
- write a batch file that will run Ejulia to produce an entire Julia set, using
- the present cross-hair point as the Julia point. Remember that each Julia set
- is related to one point in the Mandelbrot set. This is the command that
- connects the two programs: It lets you select a point in the Mandelbrot set
- from Emandel, and then run Ejulia, producing an entire Julia set. From there,
- you use Ejulia, just as you used Emandel, to explore and magnify parts of the
- Julia set. There are an infinite number of Julia sets. The farther apart their
- Julia points are in the Mandelbrot set, the less alike the two Julia sets are.
- Generally, a Julia set will resemble the appearance of that part of the
- Mandelbrot set from which the point was taken. You will get the best results
- if you place the cross-hairs on a place where there is a lot of detail.
-
- --------------------------------------------------------------------
-
- USING THRESHVIEW
-
- From main mode enter Threshview mode by pressing ^T.
-
- You will see a prompt that says "Cluster?"
-
- You now have several options:
- Press <ESC> to exit Threshview and return to main mode.
- Press L <CR> to log a different drive or subdirectory.
- Press V <CR> to view the present cluster values.
- Press G <CR> to enter Grid mode.
- Press W <CR> to write a disk file of the picture on the screen.
- Press A <CR> to use the Auto-draw feature.
- Press R <CR> to re-draw the screen.
- Press ? <CR> to see the help screens.
- Enter a number to indicate which cluster you wish to modify.
-
- Note that in the above commands you must use the <CR> after your command or
- after typing a number. You may use either upper case or lower case for the
- letter commands.
-
- If you select V a blinking cursor will appear at the end of the line. Press
- any key to continue. Press ESC to return directly to the "Cluster?" prompt.
-
- If you enter a number and press <CR> you will be shown the present bottom and
- top values of that cluster and asked for a new bottom value. Pressing <CR> at
- this point will cause the bottom value to be left unchanged. Entering a number
- will set the bottom value to that number. You will then be asked for a new top
- value. <CR> will leave the top value unchanged. Entering a number will set the
- top value to that number. Entering C <CR> at either "top" or "bottom" prompt
- will cause that cluster to be cleared. The bottom and top values may be equal.
- But specifying bottom above top will clear the cluster.
-
- Instead of entering numbers, you may enter the letter M. This causes the value
- to be set equal to the present value of maxit.
-
- Or you may enter a "less than" sign (<). This causes the value to be set to
- one less than maxit. This is useful when you want to leave the actual
- Mandelbrot set dark, but illuminate the pixels immediately outside it.
-
- Or you may enter an equals sign (=). This will set top equal to bottom or
- bottom equal to top.
-
- If all the clusters are clear, nothing will be done and you will be returned
- to the "Cluster?" prompt. However if any cluster contains valid values the
- screen will be re-drawn to show the picture specified by the clusters. If you
- press <BS> while the program is in the process of re-drawing the screen, the
- process will be halted and you will be returned to the "Cluster?" prompt. This
- allows you to set another cluster without waiting for the screen re-draw.
-
- Before Emandel begins to re-draw the screen it has to scan all the cluster
- values and set up an internal look-up table. This takes a short time. It
- begins with Cluster Zero, and it stops when no further clusters contain
- values. Thus you will get slightly faster operation if you use the low-
- numbered clusters first. That is, if you set clusters 1 through 50 it will
- take less time to set up the look-up table than if you set clusters 250
- through 300.
-
- -------------------------------------------
-
- USING AUTO-DRAW
-
- Auto-draw allows you to easily set a whole sequence of clusters in a specified
- pattern. This makes it easy, for example, to illuminate all pixels with even
- values, or values divisible by 3, etc. It is a labor-saving feature.
-
- At the Threshview "Cluster?" prompt, enter A <CR>
-
- (Note that you have to press the carriage return key (ENTER or RETURN) after
- the A.)
-
- Then, at the "First cluster?" prompt, enter the number of the first cluster in
- the sequence you wish to alter. If you just press <CR>, the first cluster will
- be cluster 0. If you press ESC no clusters will be changed and you will be
- returned to Threshview and the "Cluster?" prompt.
-
- At the "Last cluster?" prompt, enter the number of the last cluster you wish
- to alter. If you just press <CR> the last cluster will be the highest numbered
- cluster available, which is cluster 300 in the present version. If you press
- ESC no clusters will be changed and you will be returned to Threshview and the
- "Cluster?" prompt.
-
- At the "Start value?" prompt, enter the bottom value you wish the first
- cluster to have. If you enter C <CR> all the clusters in the specified
- sequence will be cleared. If you just press <CR> the start value will be set
- to 1. If you press ESC no clusters will be changed and you will be returned to
- Threshview and the "Cluster?" prompt.
-
- At the "Size?" prompt, enter the width you want each cluster to have. Because
- a cluster specifies a range of pixel values, "size" is the difference between
- the bottom value and the top value, plus one. If bottom = 15 and top = 16 then
- size is 2. If top and bottom are the same, then size is 1. <CR> will set the
- size to 1. ESC will abort, as above.
-
- At the "Gap?" prompt, enter the gap between clusters. Since each cluster
- specifies a range of pixel values to be illuminated, GAP is a range of pixel
- values to be left dark (unless those "dark" values are illuminated in a
- different cluster.) If gap is set at 1 and the top of one cluster is 17 then
- the bottom of the next cluster will be 19. If gap is 3 and the top of one
- cluster is 17 then the bottom of the next cluster will be 21. <CR> will set
- the gap to 1. ESC will abort.
-
- At the "Stop value?" prompt enter the highest value you want to be assigned to
- any cluster in the sequence. If this value is reached before the last cluster
- in the sequence is reached, all remaining clusters in the sequence will be
- cleared. This is useful if, for example, you want to illuminate all pixels
- with odd values between 25 and 51. You do not need to calculate how many
- clusters need to be specified. Specify a large number of clusters, and use the
- stop value to set 51 as the cut-off.
-
- If you press <CR> at the "Stop value?" prompt, the value of stop is set to one
- less than maxit. If you wish to set the stop value to maxit (or above, which
- has no effect) you must enter it as a number. I find that I never want to
- include maxit in the auto-draw sets. I prefer to include maxit in a cluster
- all its own so that I can easily see the effect of illuminating or darkening
- just the pixels whose value is equal to maxit, because this can sometimes be a
- large portion of the screen.
-
- After you have answered the "Stop value?" prompt the screen will be re-drawn
- to show the new image. You will then be back at the Threshview "Cluster?"
- prompt. As before, pressing <BS> during the re-draw process will halt the re-
- draw so you may alter more clusters without waiting.
-
- --------------------------------------------------------------------
-
- USING GRID
-
- Press ^G from main mode, or press G <CR> from Threshview mode to enter Grid
- mode.
-
- Use Grid mode when you want to mark a portion of the current frame to be
- enlarged in a future frame.
-
- When you enter Grid mode a pair of cross-hairs will appear centered on the
- upper left corner of the screen. At the same time, the coordinates and value
- of that pixel will be shown on the prompt line. The letter "g" or "s" at the
- left of the prompt line will tell you whether you are in "glide" or "step"
- mode. The NumLock on your keyboard will be engaged automatically.
-
- Use the number pad keys to move the position of the cross-hairs. Even if you
- have separate arrow keys, use the number pad keys anyway. Grid actually
- responds to numbers. This is so that there may be 8 directions plus stop,
- rather than just 4 directions.
-
- The 5 key is stop. The other number pad keys move the cross-hairs. The state
- of the glide toggle determines whether motion commands operate as single-step
- or as continuous motion. The Del key toggles glide on and off.
-
- The + (plus) key increments step size by one. The * (asterisk) key increments
- the step size by ten. The - (minus) key decrements the step size by one. The
- <BS> key sets the step size back to one.
-
- Use the above commands to place the cross-hairs at the top and left of the
- portion of the frame you wish to enlarge.
-
- The box commands are all control keys. (Meaning that you hold down the CONTROL
- key while you tap the indicated key. Control keys are indicated with a carat:
- ^.)
-
- Press ^B to make a box bigger. Press ^S to make a box smaller. These two
- commands have a built-in scale factor that keeps the box the same shape as the
- full screen, providing that you avoid the following commands. Use the
- following only if you want to depart from the default aspect ratio of .75.
-
- Press ^D to move the floor of the box downward. Press ^U to move the floor of
- the box upward. Press ^R to move the right side of the box to the right. Press
- ^L to move the right side of the box to the left.
-
- You may close the box by pressing 0 (zero). Or you may close it by pressing ^S
- enough times, or by pressing ^L and ^U enough times.
-
- You cannot "invert" the box. But if you make a box that has width but no
- height, or height but no width, one line of the original cross-hairs will
- disappear. Don't worry about it. The cross-hairs will re-appear once you have
- opened both height and width to the box, or when you have closed the box.
-
- If a box is open, the commands for cross-hair movement will move the entire
- box, though it will move more slowly.
-
- Once you have positioned the box exactly over the portion of the frame that
- you wish to enlarge, press the # (crosshatch) key.
-
- The program will then ask you for a file name. This is to be the name of the
- data file that will hold the data for the new run. This allows you to use a
- descriptive file name. If you just press <CR> then Emandel will construct a
- file name at run-time.
-
- Next, Grid will ask you for maxit. This is the value of maxit that will be
- used for the new frame. If you press just <CR> the present value of maxit will
- be used.
-
- Next Grid will ask you for size. This is the fraction of screen area which is
- to be used by the new frame. Size must be greater than zero and less than or
- equal to one. If you select a size that is too large for your computer's
- memory, Emandel will reduce it at run-time. If you press just <CR> size will
- be 1.
-
- Grid will not ask you for the aspect ratio, because that is determined by the
- shape of the box you have drawn. This is why, if you want the picture to fill
- the entire screen, you should avoid the ^R, ^L, ^D, and ^U commands, which
- change the shape of the box, and use only the ^B and ^S commands which have a
- built-in .75 aspect ratio.
-
- If the aspect ratio of the box is other than .75 then the maximum possible
- value of size will be less than 1. For example, a square box cannot entirely
- fill the rectangular screen. If you give a value of size that cannot be met
- for this reason, Emandel will merely make the frame as large as it can fit
- into the screen without changing the shape of the box. Thus you can always
- safely give a value of 1 for the size when you want the largest possible size,
- even though you might actually get a smaller size.
-
- After you have answered the "Size?" prompt, Grid will write a batch file to
- the currently logged directory. The name of the batch file will be constructed
- so as not to conflict with any file presently on the same directory. Grid will
- display the name of the batch file.
-
- At this point, you may continue with Grid. You can make as many batch files as
- you like. Or you may press ESC to exit from Grid mode. You will be placed back
- wherever you were when you entered Grid mode, either Threshview mode or main
- mode.
-
- Later, after you have exited from Emandel, and you wish to begin work on the
- frame you marked out under Grid mode above, simply type the name of the batch
- file (without the .BAT extension) at the normal DOS prompt, just as you would
- run any program. The batch file will run Emandel with all the command line
- parameters needed to create the frame you marked out.
-
- Because it is assumed that you will have no need for the same batch file a
- second time, the batch file will automatically erase itself if and only if
- Emandel exits without any error conditions. If Emandel is unable to start
- properly (for example if there is not enough RAM or not enough disk space
- available) then the batch file will not be erased. If you know that you want
- to keep a copy of the batch file, then either make a backup copy of it, or
- edit it to remove the second line. Alternatively, if you exit the program
- using the command ^E^C the batch file will not erase itself. (See ^E under
- MAIN COMMANDS above.)
-
- -------------------------------------------
-
- MOVING FROM MANDELBROT TO JULIA
-
- Another feature of Grid mode allows you to create a batch file from Emandel to
- run Ejulia. Because it is critical when starting Ejulia to have precise
- control over the selection of the "Julia point", Grid performs this service
- for you:
-
- If you press ^J from Grid mode, Emandel will create a batch file as above.
- However, it will be a batch file that will run Ejulia, and the Julia point
- will be the point where the cross-hairs are located. If a grid box is open it
- will have no effect. The upper left corner of the box is the point that is
- used. This batch file will run Ejulia with a frame that should enclose the
- entire Julia set. I recommend setting size fairly small for a quick run, and
- then using Ejulia to magnify the whole set or parts of the set. (The ^J
- command has no effect in Ejulia.)
-
- Ejulia works just like Emandel, except that a few commands are relevant to one
- program and not the other.
-
- When you use Grid mode in Ejulia, the Julia point written to the batch files
- is the same as the Julia point in the present run. If you want to change the
- Julia point you must edit the batch file with a text editor. I do not
- recommend this, because the outcome is utterly unpredictable.
-
- -------------------------------------------
-
- SUBDIRECTORIES
-
- Emandel always writes files (data files, picture files, and batch files) to
- the currently logged subdirectory. By using the ^L command in main or the L
- <CR> command in Threshview or the L command in Grid mode, you can change the
- logged drive or subdirectory. Giving an invalid subdirectory name has no
- effect. But logging on to a drive that has no disk in it will crash the system
- because DOS will abort the program without returning the HGA to text mode.
-
- -------------------------------------------
-
- ESCAPE TO DOS
-
- Some programs let you perform DOS commands, or even run entire programs,
- without exiting the present program. You cannot do this with Emandel because
- Emandel uses ALL your computer's memory, up to the full 640K DOS limit. There
- is simply no memory available for anything else while Emandel is running.
-
- -------------------------------------------
-
- EXIT CODES
-
- Emandel provides exit codes to DOS when it terminates. If you run Emandel from
- your own batch files, or under the control of some other program that needs to
- know whether Emandel terminated successfully, you can test for the exit code.
- The codes are as follows:
-
- 0 No errors. Normal program termination
- 1 Unrecognized command line option.
- 2 Incorrect number of command line parameters.
- 3 Insufficient RAM to allocate the data array.
- 4 Insufficient disk space to hold a completed data file.
- 5 Emandel cannot find the data file named on the command line.
- 6 The data file named on the command line comes from the wrong program:
- Emandel and Ejulia produce incompatible files.
- 7 Limits error.
- 8 Size/aspect error.
- 9 Insufficient RAM to even begin allocating memory for Emandel's internal
- arrays.
- 10 Invalid file name on command line.
- 99 No errors. Normal program termination, but the user has requested a non-
- zero exit code.
- -------------------------------------------
-
- ERROR MESSAGES
-
- ABORTED. PRESS ANY KEY. An operation has been aborted, probably due to an
- invalid parameter. Simply proceed with the program. Try the same operation
- again if you like, being careful to enter valid parameters.
-
- CAN'T MAKE BATCH FILE. Emandel is unable to open a disk file. Your disk may be
- full, (or have no remaining directory space if you are on the root directory).
- Log on to another drive, or directory, using the ^L or L command and try
- again.
-
- CANNOT GET FILENO. If this occurs it is probably a software error.
-
- CAN'T OPEN FILE. Emandel is unable to open a file. Try another disk drive or
- subdirectory.
-
- INCORRECT NUMBER OF ARGUMENTS. You invoked Emandel without the correct number
- of command line parameters. Read the section of this manual on starting
- Emandel and try again.
-
- INSUFFICIENT DISK SPACE. The presently logged disk drive does not have enough
- space for the file you are trying to save. Log onto another drive and try
- again.
-
- INSUFFICIENT MEMORY. REDUCING FRAME SIZE. PROCEED OR ABORT? This message will
- appear if the command line parameters would require Emandel to use more memory
- than is available in your computer. This is not a fatal error. Emandel will
- automatically re-size the frame by cutting off as much as necessary from the
- right-hand side and give you the choice of proceeding or aborting. If you
- prefer not to have the screen automatically re-sized (which has the side-
- effect of altering its shape) you may abort and invoke the program again with
- a smaller value of the size parameter. Unlike automatic re-sizing, changing
- size on the command line does not affect the aspect ratio. If you have memory-
- resident programs loaded, they may be taking up a good deal of valuable
- memory. I recommend you run Emandel without memory-resident programs. MEMORY
- RESIDENT PROGRAMS PROBABLY WILL NOT WORK WITH EMANDEL, BECAUSE EMANDEL RUNS IN
- GRAPHICS MODE. If you invoked Emandel via a batch file created in Grid mode
- and you get this message, pressing "A" for abort will not erase the batch
- file. You may edit the batch file (setting size smaller) or eliminate memory-
- hogging memory-resident programs, and try again.
-
- INSUFFICIENT SPACE FOR ... BYTE DATA FILE. As a safety measure, Emandel will
- not start unless there is enough space on the currently logged drive for the
- full data file that would result on completion. If you get this message, log
- onto a large enough drive and try again. For reasons of disk access speed, and
- the large size of Emandel disk files, Emandel should always be run from a hard
- disk or a very large RAM disk.
-
- INSUFFICIENT SPACE FOR ... BYTE FILE. Similar to the above, but this message
- appears when you try to save a data file, rather than when you start the
- program. This message does not kill the program. If you see this message, log
- onto a drive with enough free space and try again.
-
- LIMITS ERROR. This is a software error. You should never see this one. If you
- do, it is a program bug. Please let me know.
-
- NO RAM AVAILABLE. This message appears at program start-up (and the program
- aborts) if there is not even enough memory to *begin* to allocate Emandel's
- memory requirements. This is very unlikely. It may mean that you have very
- little memory, or a *lot* of memory-resident programs. If you know that you
- have 384K or more, try doing a cold-boot and trying again. Try booting without
- any memory-resident programs.
-
- SIZE/ASPECT ERROR. This is another software bug error. If you see it, please
- let me know.
-
- <file> NOT AN EMANDEL FILE
- <file> NOT AN EJULIA FILE These messages mean the file passed to the program
- on the command line is of an incompatible type. Emandel and Ejulia files are
- not interchangeable.
-
- UNRECOGNIZED OPTION. This message means that there was an option on the
- command line that Emandel does not recognize. Please read the section on
- starting Emandel and try again.
-
- --------------------------------------------------------------------
-
- EMDISPLAY
-
- Emdisplay allows you to view and print pictures created with Emandel. Note
- that Emdisplay does not view data files (with the PIK file type extension) but
- only PICTURE files (which you create with Threshview and which have the PIC
- file type extension.)
-
- USAGE:
-
- EMDISPLAY [<filename>] [...] [/<options>]
-
- <filename> is any valid file name, optionally including a drive designation
- and path. It may contain MS-DOS "wild cards". If no file type extension is
- given, then PIC is assumed. You may list as many different file names as you
- like, each of which may contain drive\path and wild cards. If no file name is
- given, then *.PIC is assumed.
-
- /<options> are optional. The options all deal with printing, so you need not
- use them if you are going to view files without printing. The list of options
- must be preceded by a forward slash, and there must be no spaces after the
- slash or within the list of options. Available options are as follows: (They
- may be used in any order and letters may be upper or lower case.)
-
- 2 Use port LPT2.
-
- 3 Use port LPT3.
-
- ? Print a help message. This option also aborts the program, so it makes the
- other options superfluous.
-
- D Print dark. This is useful if your printer ribbon is not as dark as you
- want. Basically this command is an "overstrike" mode.
-
- F+ Increase the amount of the line feed by 1/216 of an inch. You may want to
- use this if your printer does not track well.
-
- F- Decrease the amount of the line feed by 1/216 of an inch.
-
- N Print without asking. Normally Emdisplay shows you the pictures one at a
- time and waits for you to press a key. If you include N in the options,
- Emdisplay will print all the pictures without pausing. Thus, if you use
- fanfold paper you can print a number of pictures unattended. If you use this
- option, Emdisplay will exit after all the files in the list have been printed.
-
- R Print the picture so that black and white are reversed.
-
- Z Send the print output to a disk file named EPT.DAT instead of to the
- printer. This is really intended as a diagnostic feature. But it also allows
- you to create a data file that can drive the printer independent of the
- Emdisplay program.
-
- ^ (carat) This command over-rides the automatic paper advance. Normally, if
- you place the paper so that its top edge is even with the top of the ribbon,
- Emdisplay will advance the paper so that the finished picture is centered in
- the page. However, with this command you can over-ride that feature.
-
- COMMANDS FOR USE WITHIN EMDISPLAY
-
- Emdisplay shows you the pictures you listed on the command line and at each
- picture it waits for a command, unless you included N in the options. (See
- above.) The commands are:
-
- LEFT ARROW or
- UP ARROW or
- B Emdisplay will go back to the previous picture.
-
- HOME Go back to the first picture.
-
- END Go to the last picture.
-
- P Print the picture. Emdisplay will use printer port LPT1 unless you have
- included 2 or 3 in the options list, in which case it will use LPT2 or LPT3
- respectively. After printing it will automatically advance to the next picture
- in the list.
-
- ALT-P Print dark if /D was NOT specified on the command line, or print light
- if /D WAS specified on the command line. In other words, this command prints
- the file but over-rides the command-line intensity specification.
-
- X Emdisplay will quit and exit.
- ESC Same as above.
-
- <any other key> Emdisplay will go forward and show you the next picture.
-
- ^C If you press control-C while Emdisplay is printing a picture, the printing
- will abort and the program will advance to the next picture. The printer will
- not immediately stop because it already has the next few lines in its own
- internal memory buffer. If you press control-C when Emdisplay is not printing,
- it has the same effect as Q above.
-
- The pictures are viewed in a continuous loop. After the last, it returns to
- the first. If you go (B)ackward from the first, it shows you the last. It will
- not terminate until you tell it to unless you use the N option (print without
- asking, see above).
-
- When you tell Emdisplay to print a picture, it first advances the paper,
- unless you have used the ^ option. (See above.) This makes it easier to
- position the paper: Put it so the top of the page is level with the top of the
- ribbon. At the end of printing a picture, Emdisplay sends a form-feed to the
- printer. Thus, if you are using fan-fold paper you can print a number of
- pictures one after the other, and they should all be centered correctly.
- (However, on my printer, friction feed is more accurate than tractor feed, so
- pictures printed on individual sheets look better than those printed on fan-
- fold paper.)
-
- Pictures are printed sideways, so a wide-carriage printer is not required.
-
- ERROR MESSAGES
-
- You may get an error message when you try to print, or during printing if your
- printer is turned off, if it is off-line, if there is no printer connected to
- the printer port, if it runs out of paper, or if you shut it off while
- printing.
-
- If this happens, Emdisplay will give you a choice:
-
- (A)bort, e(X)it, (R)etry?
-
- If you press A the attempt to print the current picture will be abandoned. You
- may tend to you your printer and try again.
-
- If you press X the program will terminate and exit.
-
- If you press R the program will try to continue where it left off when the
- error occurred.
-
- --------------------------------------------------------------------
-
- FILE FORMATS
-
- In case you wish to make use of Emandel's files for programs of your own
- (perhaps to write your own printer driver for a non-Epson printer) I provide
- below the file formats.
-
- DATA FILE FORMAT
-
- The data files always have the file type extension PIK.
-
- The first byte is an ascii character: K for Emandel, and J for Ejulia. Future
- versions may use different characters to allow detection of incompatible file
- formats.
-
- The next 80 bytes are program variables. (I)ntegers are 2 bytes, (D)oubles are
- 8-bytes in standard 8087 format, (L)ong integers are 4 bytes. The variables
- appear in the following order:
-
- (D) The real component of the left edge of the frame.
- (D) The imaginary component of the top of the frame.
- (I) The width in pixels of the frame.
- (I) The height in pixels of the frame.
- (I) The width the data array.
- (I) The height the data array.
- (D) The increment between calculated points.
- (D) The height to width aspect ratio.
- (D) The fraction of the screen covered by the frame.
- (I) The iteration cut-off limit, maxit.
- (I) The number of vertical scan lines completed so far.
- (D) The imaginary component of the bottom of the frame.
- (D) The real component of the Julia point. (0.0 in Emandel.)
- (D) The imaginary component of the Julia point. (0.0 in Emandel)
- (L) The number of seconds spent so far in calculation phase.
-
- The next 44 bytes are filler, to allow header room for future versions.
-
- The rest of the file is the iteration value of the pixels. Pixels are mapped
- from the top of the frame to the bottom, and then from left to right. If maxit
- is less than or equal to 255 then each pixel takes one byte. If maxit is
- greater than 255 then each pixel takes 10 bits. "The height of the data array"
- above is the number of bytes per vertical scan line in the data file if maxit
- is less than or equal to 255. If maxit is greater than 255, then add 25% to
- the height to get the number of bytes per vertical scan line. "The number of
- vertical scan lines completed so far" is the number of vertical scan lines in
- the data file.
-
- PICTURE FILE FORMAT
-
- Picture (image-only) files always have the file type extension PIC.
-
- The file begins in ascii with the command line that started Emandel,
- terminated with decimal 26, and then filled out to a standard total length of
- 160 bytes. This allows Emandel to re-create an old data file from the picture
- file. If you have made the data file MYPIC.PIK and made a picture from it
- named MYPIC0.PIC and then erased the date file MYPIC.PIK to save disk space
- (the picture file is about 1/10 the size of the data file) and then you want
- to re-create the original data file, do the following:
-
- COPY /A MYPIC.PIK DOIT.BAT
- DOIT
-
- The DOIT batch file will run Emandel for you.
-
- After those first 160 bytes:
-
- The next 2 bytes are an integer, the HEIGHT in pixels of the frame.
- The next 2 bytes are an integer, the WIDTH of the frame in pixels.
-
- Then follows the body of the data:
-
- Pixels are bit-mapped from the picture frame to the file one horizontal scan
- line at a time. The length of each scan line in bytes is one-eighth of the
- WIDTH above. The number of scan lines is equal to HEIGHT, above. Note that
- this is not a simple dump of the HGA memory. The HGA mixes up the order of the
- scan lines, which Emandel does not do. One-third of the scan lines are
- reserved for the printer and do not show on the screen. The height and width
- of the file are only as large as required for the picture. Thus small pictures
- make small files.
-
- Following image data is the title line, also bit-mapped, as eight scan lines,
- each 84 bytes long.
-
- Although Emandel shows small-size frames in the upper left corner of the
- screen, Emdisplay will center images in the screen and place the title line at
- the bottom.
-
- Although small frame sizes make smaller data and picture files, Emandel does
- not use data compression. If you are saving a lot of files, I recommend the
- use of a file archiving program such as PKARC, from PKWARE. PKARC is shareware
- and is available from many sources, including BBS systems.
-
- --------------------------------------------------------------------
- A NOTE ON MAXIT
-
- For the overview of the entire Mandelbrot set you can set maxit to 100. As you
- go to larger magnification, you will often need to set maxit higher in order
- to get satisfactory results. Generally, the higher you set maxit, the longer
- it will take to complete the frame. You will soon learn to get a balance
- between these two concerns.
-
- -------------------------------------------
-
- GLOSSARY OF SOME TERMS USED IN THIS DOCUMENTATION
-
- ASPECT RATIO The ratio of height to width. Because of the extra scan lines
- kept out of sight in Emandel's memory, the aspect ratio you see on the screen
- is the same as you will get on the printer.
-
- CLUSTER In Threshview mode (and its offshoot, Auto-draw) a cluster holds a
- range of pixel values to be illuminated. In the present version there are 301
- clusters, numbered from 0 to 300. A cluster may be clear, in which case it has
- no effect. Or it may have a bottom and top value. Any pixel whose value is
- within any cluster will be illuminated. Thus if a cluster is assigned a bottom
- of 17 and a top of 19, then all pixels with values of 17, 18, or 19 will be
- illuminated. Thus you can define up to 301 different ranges of values, and all
- pixels that fall inside of any of these ranges will be illuminated. It is this
- flexibility that gives Emandel its character: It lets you interact with the
- computer to specify the values to be illuminated. You become an artist, and
- your material is the raw data produced by the program. (Incidentally, the
- quantity of data in one typical run of Emandel would have taken a
- mathematician with paper and pencil several lifetimes to produce in the days
- before computers.)
-
- CLUSTER BOTTOM The bottom value in a cluster: the minimum pixel value that
- will be illuminated by that cluster.
-
- CLUSTER SIZE The difference between the cluster bottom and the cluster top,
- plus one. Thus if bottom is 17 and top is 19, the size of the cluster is 3.
- When Auto-draw asks you for size, it wants to know the size of each cluster in
- the sequence that is to be set automatically.
-
- CLUSTER STOP VALUE In Auto-draw, this is a cut-off value. If you have
- specified a range of clusters to be set automatically, Emandel assigns bottom
- and top values to them in ascending order. If the stop value is reached before
- the last cluster is reached, the remainder of the clusters in the sequence
- will be cleared. Thus you actually have two ways of specifying the upper cut-
- off: by the assignment of "last cluster" or by the assignment of "stop value".
-
- CLUSTER TOP The top value in a cluster. The maximum pixel value that will be
- illuminated by that cluster.
-
- DATA FILE The disk file in which Emandel stores all the information needed to
- resume a run which has been halted. Eventually, this is the data that Emandel
- will use to make images in Threshview mode.
-
- EXIT CODE When a program running under MS-DOS terminates, it can give DOS a
- number, called an exit code. It is often useful for a program to communicate
- with DOS to announce whether it did its job and terminated normally, or
- encountered an error condition and was forced to abort without doing its job.
- This exit code can be tested in a batch file, or can be read by the next
- program. See EXIT CODES elsewhere in this documentation.
-
- FIRST CLUSTER When auto-draw asks you for a first cluster, it wants to know
- the first of the sequence of clusters that you wish to set automatically.
-
- FRAME The frame is the portion of the complex number plane being examined.
-
- GAP In auto-draw, GAP is the difference between the top of one cluster and
- the bottom of the next.
-
- GLIDE In Grid mode, glide means that cross-hair motion commands are "sticky":
- they continue until you override them with another command. The <Del> key
- toggles glide mode to step mode.
-
- GRID BOX The grid box is the portion of the screen marked out by the two sets
- of cross-hairs in Grid mode.
-
- GRID MODE Grid mode is the feature of Emandel that lets you see the
- coordinates and value of any pixel and create batch files automatically. This
- makes it much easier to explore the Mandelbrot set than it would be if you had
- to guess at the coordinates of the areas you wanted to view.
-
- GRID WINDOW Grid window is another term for Grid box.
-
- HEIGHT The number of scan lines in Emandel's internal memory array. It can be
- slightly larger than y-limit because it must be divisible by 4. Both height
- and y-limit are larger than the height in pixels of the screen image because
- of the extra scan lines for the printer.
-
- LAST CLUSTER When Auto-draw asks you for the last cluster, it means the last
- in the sequence of clusters you wish to set automatically.
-
- MAXIT This is the maximum number of iterations that will be performed on any
- one pixel during calculation phase. For most frames, setting maxit lower will
- result in faster calculation, but setting maxit higher will result in more
- clearly-defined edges. Generally, I advise setting maxit low for broad over-
- views of the set, and setting maxit high for highly-magnified views of
- structures very near the edge of the set. (Note that it is never possible to
- determine ABSOLUTELY the boundary of the Mandelbrot set. All you get is an
- approximation. Setting maxit higher increases the accuracy of the
- approximation.) The highest you can set maxit is 1023 because of memory
- limits.
-
- PICTURE FILE This is the disk file that holds a picture created in Threshview
- mode. Because it holds only the image, and not the full data, it is much
- smaller than the full data file. A picture file for a full size picture is
- 43K. (About one-tenth the size of a full data file.)
-
- PIXEL Stands for "picture element" and is one dot on the screen, or on the
- printed picture. On the HGA there are 250,560 pixels. Emandel only uses
- 228,480 of those for screen images. But it uses 338,688 pixels for printed
- pictures.
-
- SET A set really just means a bunch of things. The Mandelbrot set is the
- collection of points on the complex number plane that fit the criterion
- described elsewhere in this document.
-
- SIZE This refers to the fraction of the screen area that will be covered by
- the frame. The aspect ratio takes precedence and sets an upper limit to SIZE.
- Setting SIZE smaller allows you to reduce the size of the picture and thereby
- shorten the calculation time.
-
- START VALUE When Auto-draw asks you for a start value, it means the bottom
- value for the first cluster in the sequence of clusters to be set
- automatically.
-
- STEP In Grid, step mode means that cross-hair movement commands are single-
- step. <Del> toggles step mode to glide mode.
-
- THRESHVIEW MODE Threshview mode is the feature of Emandel that allows you to
- interactively create pictures. You can become a regular Van Gogh. The keyboard
- is your brush, the screen your canvas, and the raw data is your paint.
-
- WIDTH The width in pixels of Emandel's memory array. This can be larger than
- x-limit because it must end on a byte boundary.
-
- X-LIMIT This is the width in pixels of the actual picture frame.
-
- Y-LIMIT This is the height in pixels of the Emandel picture as it will appear
- on the printer. It is 50% greater than the height in pixels of the picture on
- the screen.
-
- --------------------------------------------------------------------
-
- KITTENSOFT ABSOLUTE UNCONDITIONAL NO-BUGS GUARANTEE:
-
- I give you my absolute unconditional guarantee that I will be surprised if
- there are no bugs in these programs. I *hope* that I have eliminated *most* of
- the bugs.
-
- I hope you enjoy these programs.
-
- Dan Schechter
- Route 1 Box 19
- Amenia, North Dakota 58004
- U.S.A.